// js 是一门语言   Java
// 基本数据类型，运算符，循环语句，方法，面向对象基础，数组，集合，Java高阶（继承封装多态IO流反射多线程）
// js的数据基本类型 定义变量  String name="aa";
// let name="aaa";//var 慢慢不用了，过时了
// let 一般定义变量  const 一般定义常量
//js 怎么知道当前的数据为什么数据类型呢？根据变量的值自动定义
//js 的数据类型有哪些？数字，字符，布尔，对象，数组
// js变量命名规则和Java属性，方法一样，小驼峰
let num = 1;
let chara = '1';//js不区分大小写，但是一定要一对
let charB = "1";
let boo = true;
let objA = new Dog();
let obj = {name: "aaa", age: 19};//对象
//let obj = {"name": "aaa", "age": 19}json对象，所有的key值需要用引号括起来
//json对象和普通对象意思完全一样，用法完全一样
obj.name = "ccc";
// console.log(obj.name);//打印到控制台
let array = [num, chara, obj, 2, [], {}];

//js定义方法
function Dog(name) {
    setName();
}

//TS 可以理解为Java
// 一般js方法名大写把他看作类，小写看作方法。这不是强制规定的
function setName() {
    console.log("aaa")
}

//技术暂时没有重载

function setName(name) {
    let numa = 1;
    let numb = 2;
    console.log(numa / numb);
    console.log(typeof numb)
    console.log(typeof name)
    console.log()
}

// js 字符就是Java的字符串
//js是一门弱语言
let str = "afdasfas";
console.log("str:" + str)
console.log("长度:" + str.length);
console.log("split:" + str.split("a"))
console.log("replace:" + str.replaceAll("a", "G"));
console.log("substring:" + str.substring(0, 3))
console.log("charAt:" + str.charAt(3));
console.log("toUpperCase:" + str.toUpperCase())
console.log("startsWith:" + str.startsWith("d"))
console.log("trim:" + str.trim())//去掉字符两端的空格
let arr = str.split("a");
arr[0]="ffff";
for (let i = 0; i < arr.length; i++) {
    console.log(arr[i])
}
console.log("arr:" + arr)